/**
 * mixin 全局混入
 * 好处作用: 复用组件逻辑
 */

import store from '@/store'

export default {
  data() {
    return {
      xiaoyang: 10000 // 全局混入一个变量
    }
  },
  methods: {
    /**
     * 定义全局混入公共方法
     *
     * @param {*} point 检测的权限点标识（身份象征）
     */
    checkPoints(point) {
      // console.log(111, point)
      /**
       * 检查当前登录人是否可以使用某个按钮权限:
       * 1. 获取登录人按钮权限点数据 (points)，进行是否有权限判断 -> 返回true|false
       *    1. points 数组中拥有身份标识: 显示按钮
       *    2. points 数组中没有身份标识: 不显示按钮
       * 2. 在需要做权限控制页面下的按钮上使用 -> v-if="checkPoints(当前按钮功能的身份标识)"
       */

      // 原因: 退出登录时重置用户数据, 会响应式刷新, 执行 checkPermission 获取数据异常
      // try {
      //   const { points } = store.state.user.userInfo.roles
      //   return points.includes(point)
      // } catch (error) {
      //   console.log(error)
      // }
      const { userInfo } = store.state.user
      // 语法: ?可选链 -> 属性?.属性 -> 代码健壮性(鲁棒性)
      return userInfo.userInfo?.points.includes(point)
    }
  }
}

